1. Field
The present embodiments relate to techniques for managing input/output (I/O) operations on portable storage devices. More specifically, the present embodiments relate to a method and system for decoupling I/O operations from virtual computing environments associated with the portable storage devices to the portable storage devices.
2. Related Art
Portable storage devices are often used to store backups and/or copies of data from a user's primary computing device, such as a personal computer or a laptop computer. For example, a Universal Serial Bus (USB) flash drive may contain copies of important files (e.g., documents, music, photos, etc.) from a user's laptop computer. Furthermore, the compact, rewritable, durable, and affordable nature of portable storage devices may facilitate the storage and transfer of data between electronic computing devices. For example, data on a USB flash drive may be accessed from and/or copied to an electronic computing device (e.g., printer, computer, digital camera, etc.) simply by plugging the USB flash drive into a USB port on the electronic computing device.
Unfortunately, storage mechanisms on portable storage devices typically have a number of drawbacks. First, disconnection of a portable storage device from another electronic device without proper shutdown may corrupt the data on the portable storage device and render the data unusable. Moreover, applications accessing the portable storage device at the time of disconnect may crash, hang, and/or otherwise function incorrectly as a result of the disconnection.
Second, portable storage devices often include cheaper non-volatile memory that limits the speed with which input/output (I/O) operations are processed on the portable storage devices. Furthermore, protocol overhead in the connection between a portable storage device and a computer may cause small read and write operations to be inefficient. For example, a write operation to a flash memory device may incur a delay of 100 milliseconds, which is significantly greater than the delay associated with a similar write operation to an HDD. Along the same lines, portable storage devices fabricated using cheaper memory may become unreliable after going through a limited number of erase cycles.
As a result, portable storage devices may be unsuitable as primary storage devices and/or as devices on which large numbers of I/O operations are made. For example, a USB flash drive may be too easily corrupted, broken, and/or lost to serve as primary storage for a user's important documents. Frequent I/O operations to the USB flash drive may quickly wear out the USB flash drive and may further impair the performance of applications that require the I/O operations to return before resuming execution.
Hence, what is needed is a technique for increasing the reliability, including interrupt handling; speed; and longevity of storage mechanisms on portable storage devices.
In the figures, like reference numerals refer to the same figure elements.